package main

import (
	"gee"
	"net/http"
)

func main() {
	r := gee.New()

	// 普通调用
	r.GET("/index", func(c *gee.Context) {
		c.HTML(http.StatusOK, "<h1>Index Page</h1>")
	})

	// 路由分组 -- api
	apiGroup := r.Group("/api")
	{
		apiGroup.Use(gee.Recovery())
		v1 := apiGroup.Group("/v1")
		{
			v1.GET("/hello", func(c *gee.Context) {
				c.HTML(http.StatusOK, "<h1>API V1 Hello Page</h1>")
			})

		}

		v2 := apiGroup.Group("/v2")
		{
			v2.GET("/hello", func(c *gee.Context) {
				c.HTML(http.StatusOK, "<h1>API V2 Hello Page</h1>")
			})

			v2.GET("/panic", func(c *gee.Context) {
				names := []string{"geektutu"}
				c.String(http.StatusOK, names[100])
			})

		}

		apiGroup.POST("/hi", func(c *gee.Context) {
			c.HTML(http.StatusOK, "<h1>API Hi Page</h1>")
		})
	}

	// 路由分组 -- web
	webGroup := r.Group("web")
	{
		webGroup.GET("/hello", func(c *gee.Context) {
			c.HTML(http.StatusOK, "<h1>Web Hello Page</h1>")
		})

		webGroup.POST("/hi", func(c *gee.Context) {
			c.HTML(http.StatusOK, "<h1>Web Hi Page</h1>")
		})
	}

_:
	r.Run(":8080")

}

func logMiddleware() gee.HandlerFunc {
	return func(context *gee.Context) {
		//_: fmt.Fprintf(os.Stderr, "[GIN-debug] 请求完成\n ")
	}
}
